home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 1995 October / Amiga-CD 1995 #10.iso / weitere_demos / adm / arexx / netzstatistik.adm < prev    next >
Text File  |  1995-06-04  |  3KB  |  106 lines

  1. /* $VER: Netzstatistik.adm 1.0 (6.1.93)
  2.  
  3.    Gibt den Anteil der User aus, die in der aktuellen ADM-Datei in
  4.    den jeweiligen Netzen sind.
  5.  
  6.    Hat zwar keinen praktischen Nutzen, zeigt jedoch, wie ADM-Daten
  7.    ausgewertet und zu Statistiken verwendet werden könnten.
  8.  
  9.    Fehler:
  10.      Überschneidungen (z.B. User in mehreren Netzen oder mehrere
  11.      Adressen in einem Netz) werden nicht separat ausgewertet.
  12.  
  13.    Von Jan Geißler.
  14.  
  15.    */
  16.  
  17. /*----------------------------------------------------------------------
  18.    Hauptprogramm: Adresse auslesen, Mail schreiben & schicken
  19. ----------------------------------------------------------------------*/
  20.  
  21.    OPTIONS RESULTS
  22.  
  23. /* Variablen initialisieren */
  24.  
  25.    numfido = 0
  26.    numuucp = 0
  27.    numzer = 0
  28.  
  29. /* Ersten Eintrag aktivieren, Anzahl Einträge herausfinden */
  30.  
  31.    ACTIVATEFIRST
  32.    ADDRINMEM
  33.    num = RESULT
  34.  
  35. /* Schleife: Falls EMail-Adresse
  36.  
  37.    DO FOR num
  38.       GETADDRESS ADM                 /* Adresse holen */
  39.       IF ADM.EMAIL1 ~= "" THEN DO
  40.          txt = ADM.EMAIL1            /* EMail 1 auswerten, falls vorhanden */
  41.          CALL NetType
  42.       END
  43.       IF ADM.EMAIL2 ~= "" THEN DO
  44.          txt = ADM.EMAIL2            /* EMail 2 auswerten, falls vorhanden */
  45.          CALL NetType
  46.       END
  47.       ACTIVATENEXT                   /* Nächsten aktivieren */
  48.    END
  49.  
  50. /* Ergebnis ausgeben */
  51.  
  52.    SAY "Gesamtzahl:" num
  53.    SAY "Fidonet:   " numfido "(" || numfido / num * 100 || "%)"
  54.    SAY "Z-Netz:    " numzer  "(" || numzer  / num * 100 || "%)"
  55.    SAY "Usenet:    " numuucp "(" || numuucp / num * 100 || "%)"
  56.  
  57.    EXIT                                         /* Ende */
  58.  
  59.  
  60. /*----------------------------------------------------------------------
  61.    UNTERPROGRAMM: Netz herausfinden.
  62. ----------------------------------------------------------------------*/
  63.  
  64.    NetType:
  65.  
  66.       IF txt ~= "" THEN DO      /* Wenn überhaupt EMail-Text vorhanden */
  67.  
  68.          pos = POS("=",txt)     /* Wenn mit ZER=, FIDO= oder UUCP= ein- */
  69.                                 /*                          getragen... */
  70.  
  71.          IF pos > 0 THEN DO     /* ... Netz herausfinden und von Adresse */
  72.             net = STRIP(SUBSTR(txt,1,pos-1))                  /* trennen */
  73.          END
  74.          ELSE DO                /* andernfalls: Herausfinden, welches Netz */
  75.  
  76.             net = "UUCP"        /* Vorgegeben: UUCP, falls kein anderes
  77.                                    erkannt wird... */
  78.  
  79.             pos = POS("@Fidonet",txt)     /* Endung "@Fidonet"? */
  80.             IF pos>0 THEN DO
  81.                net = "FIDO"
  82.             END
  83.  
  84.             pos = POS(".ZER",txt)         /* Endung ".ZER"? */
  85.             IF pos=LENGTH(txt)-3 THEN DO
  86.                net = "ZER"
  87.             END
  88.          END
  89.  
  90.          IF net="FIDO" THEN DO            /* FIDO:  */
  91.             numfido = numfido + 1
  92.          END
  93.  
  94.          IF net="ZER"  THEN DO            /* ZERBERUS: */
  95.             numzer = numzer + 1
  96.          END
  97.  
  98.          IF net="UUCP" THEN DO            /* UUCP: */
  99.             numuucp = numuucp + 1
  100.          END
  101.  
  102.       END
  103.    RETURN
  104.  
  105.    /* ENDE des Unterprogramms */
  106.